#!usr/bin/python
# -*= coding: UTF-8 -*-
import re
a = re.search(r'python(C|D)', 'pythonC')  #表示匹配正则表达式PythonC或pythonD
print('a1', a)

a = re.findall(r'\bPythonC\b', 'PythonC.com!PythonC_com!(PythonC)')  #\b匹配一个单词边界，单词被定义为unidcode的字母数字或下划线字符，PythonC_com没有单词边界
print('a2', a)

a = re.findall(r'\w', '我爱python工作室 (Love_PythonoC.com)')  #
print('a3', a)

'''
如果你需要重复地使用某个正则表达式，那么你可以先将该正则表达式编译成模式对象。我们使用re.compile()方法来编译...
'''
p = re.compile(r'[A-Z]')
print('p', p)

a = p.search('I love PythonC.com!')
print('a', a)

a = p.findall('I love PythonC.com!')
print('a', a)

'''
X
VERBOSE
这个标志使你的正则表达式写得更好看和更有条理，因为使用了这个标志，
空格会被忽略（除了出现在字符类中和使用反斜杠转移的空格）；这个标志
同时允许你在正则表达式字符串中使用注释，#符号后边的内容是注释，不会递交
给匹配引擎（除了出现在字符类中和反斜杠转义的#）
'''
#使用re.VERBOSE的例子
charref = re.compile(r"""
&[#]               #开始数字引用
(
     0[0-7]+       # 八进制格式
   | [0-9]+        # 十进制格式
   | x[0-9a-fA-F]  # 十六进制格式
)
；                 # 结尾分号
""", re.VERBOSE)

#如果没有设置VERBOSE标志，那么同样的正则表达式会写成：可读性不强
charref = re.compile("&#(0[0-7]+|[0-9]+|x[0-9a-fA-F]+);")

















